<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // 基本数据的拷贝：默认深拷贝
  // var a = 10;
  // var b = a;
  // b = 20;
  // console.log(a);
  // console.log(b);
  
  
  // 复杂数据的拷贝：默认浅拷贝
  // var obj1 = {name:"admin"}
  // var obj2 = obj1;
  // obj2.name = "root";
  // console.log(obj1);
  // console.log(obj2);

  // 复杂数据的浅拷贝：只拷贝地址（栈）
  // 复杂数据的深拷贝：只拷贝值（堆）

  // 深拷贝方式：遍历老对象，逐个拷贝值
  // var obj1 = {name:"admin"};
  // var obj2 = {};
  // obj2.name = obj1.name;
  // obj2.name = "root"
  // console.log(obj1)
  // console.log(obj2)

  // ======

  // var obj1 = {
  //   a:10,b:20,c:30,d:40,name:"admin",age:19
  // }
  // // 对象的遍历
  // for(var i in obj1){
  //   console.log(i, obj1[i]);
  // }

  // ======
  
  // 对象的深拷贝

  // 原对象
  var obj1 = {
    a:10,b:20,c:30,d:40,name:"admin",age:19
  }
  // 新对象（创建一个新地址）
  var obj2 = {}

  // 遍历老对象，获取老对象内部的所有数据
  for(var i in obj1){
    // 逐个拷贝到新地址中
    obj2[i] = obj1[i];
  }
  // 修改拷贝之后的对象
  obj2.a = "hahahhahahaha"
  // 查看新老对象
  console.log(obj1);
  console.log(obj2);



</script>
</html>